package samplejava.compiler;

final public class Tipos {
	public static final int TYPE_ERROR = 0;
	public static final int INT = 1;
	public static final int LONG = 2;
	public static final int FLOAT = 3;
	public static final int POINTER = 4;
	public static final int VOID = 5;
	/*por ahora podria servir tambien para tamaños (size).
	pero despues ya no serviria si se añadiera x ej el tipo char.
	char es de tamaño 1, pero aqui hay q diferenciarlo de los demas:
	public static final int CHAR = 3;
	Solucion: metodos getSize() y static getSize(tipo) de la clase EntryTS
	*/
	private static String[] tipoStrings = { "type_error", "int", "long", "float", "pointer", "void" };
	
	static public int getSize(int tipo) {
		switch (tipo) {
			case Tipos.INT: return 1;
			case Tipos.LONG: return 2;
			case Tipos.FLOAT: return 4;
			case Tipos.POINTER: return 1;
			case Tipos.VOID: return 0;
			case Tipos.TYPE_ERROR: return 0;
			default: return 0;
		}
	}
	
	public static String getTipoStr(int id) {
		/*if (id < Tokens.INT)
			return "NoTipo";
		
		return tipoStrings[id - Tipos.INT];*/
		return tipoStrings[id];
	}
}
